package com.nowcoder.community.mapper;

import com.nowcoder.community.pojo.Comment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository("commentMapper")
public interface CommentMapper {

    /**
     * 根据实体查询评论
     * @param entityType 实体类型
     * @param entityId 实体id
     * @param offset 每页的起始行号
     * @param limit 每一页显示的行数
     * @return 返回满足条件的评论实例
     */
    List<Comment> selectCommentByEntity(@Param("entityType") int entityType,
                                        @Param("entityId") int entityId,
                                        @Param("offset") int offset,
                                        @Param("limit") int limit);

    /**
     * 查询当前实体的评论数
     * @param entityType 实体类型
     * @param entityId 实体id
     * @return 返回评论数
     */
    int selectCountByEntity(@Param("entityType") int entityType, @Param("entityId") int entityId);

    int addComment(Comment comment);

    /**
     * 删除某个用户的评论信息
     * @param userId 用户id
     * @return 删除评论的个数
     */
    int deleteCommentsByUserId(@Param("id") int userId);

    /**
     * 根据评论id查询评论
     * @param id 评论id
     * @return 评论
     */
    Comment selectCommentById(@Param("id") int id);
}
